package com.xinzhi.model;

import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 订单表
 * </p>
 *
 * @author laohan
 * @since 2024-01-08
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="Orders对象", description="订单表")
public class Orders implements Serializable {

private static final long serialVersionUID=1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    private String uuid;

    @ApiModelProperty(value = "用户id")
    private Integer userId;

    @ApiModelProperty(value = "店铺id")
    private Integer shopId;

    @ApiModelProperty(value = "联合订单id")
    private Integer unionOrderId;

    @ApiModelProperty(value = "当订单为代付订单时，有此字段 host 订单")
    private Integer hostOrderId;

    @ApiModelProperty(value = "编号")
    private String number;

    @ApiModelProperty(value = "订单核销码")
    private String code;

    @ApiModelProperty(value = "none无须支付 wechat alipay eth")
    private String payType;

    @ApiModelProperty(value = "miniapp web qrcode")
    private String paySubType;

    @ApiModelProperty(value = "小程序类型 默认wechat小程序")
    private String miniappType;

    @ApiModelProperty(value = " 用户备注")
    private String remark;

    @ApiModelProperty(value = "卖家备注（仅卖家可见）")
    private String sellerRemark;

    @ApiModelProperty(value = "卖家回复 (用户及卖家可见)")
    private String sellerReply;

    @ApiModelProperty(value = "商品总数")
    private Integer productTotal;

    @ApiModelProperty(value = "sku总数")
    private Integer skuTotal;

    @ApiModelProperty(value = "商品人民币总价")
    private Integer productMoneyPrice;

    @ApiModelProperty(value = "商品积分总价")
    private Integer productScorePrice;

    @ApiModelProperty(value = "红包佣金")
    private Integer moneyBrokerage;

    @ApiModelProperty(value = "积分佣金")
    private Integer scoreBrokerage;

    @ApiModelProperty(value = "上级推广人红包佣金")
    private Integer secondBrokerageMoney;

    @ApiModelProperty(value = "上级推广人积分佣金")
    private Integer secondBrokerageScore;

    @ApiModelProperty(value = "运费")
    private Integer carriage;

    @ApiModelProperty(value = "vip折扣优惠")
    private Integer vipDiscount;

    @ApiModelProperty(value = "积分优惠")
    private Integer scoreDiscount;

    @ApiModelProperty(value = "红包优惠")
    private Integer redpackDiscount;

    @ApiModelProperty(value = "优惠券优惠")
    private Integer couponDiscount;

    @ApiModelProperty(value = "兑换消耗资产数量")
    private Integer coverAssetTotal;

    @ApiModelProperty(value = "兑换消耗资产的id")
    private Integer coverAssetId;

    @ApiModelProperty(value = "兑换消耗资产的类型")
    private String coverType;

    @ApiModelProperty(value = "兑换优惠抵扣")
    private Integer coverDiscount;

    @ApiModelProperty(value = "其它优惠")
    private Integer otherDiscount;

    @ApiModelProperty(value = "其它优惠说明 ")
    private String otherDiscountRemark;

    @ApiModelProperty(value = "总价格(含运费), 扣除各项优惠")
    private Integer orderMoneyPrice;

    @ApiModelProperty(value = "总价格(含运费), 扣除各项优惠")
    private Integer orderScorePrice;

    @ApiModelProperty(value = "应付价格, 此价格可能已被管理员修改")
    private Integer payMoneyPrice;

    @ApiModelProperty(value = "应付价格, 此价格可能已被管理员修改")
    private Integer payScorePrice;

    @ApiModelProperty(value = "优惠券类型, 空为无优惠券  0为平台优惠券   1为店铺优惠券   2为微信卡券")
    private Integer couponType;

    @ApiModelProperty(value = "支付编号顺序号（防止下单后取消支付改价格后再支付出错问题）")
    private Integer payNum;

    @ApiModelProperty(value = "支付编号")
    private String payNumber;

    @ApiModelProperty(value = "确认时间")
    private Date confirmedAt;

    @ApiModelProperty(value = "人民币支付时间")
    private Date moneyPaidAt;

    @ApiModelProperty(value = "积分支付时间")
    private Date scorePaidAt;

    @ApiModelProperty(value = "发货时间")
    private Date deliveredAt;

    @ApiModelProperty(value = "完成时间")
    private Date completedAt;

    @ApiModelProperty(value = "关闭时间")
    private Date closedAt;

    @ApiModelProperty(value = "评价时间")
    private Date commentedAt;

    @ApiModelProperty(value = "线下核销")
    private Date offlineUseAt;

    @ApiModelProperty(value = "将来自动关闭的时间")
    private Date autoClosedAt;

    @ApiModelProperty(value = "将来自动收货的时间")
    private Date autoCompletedAt;

    @ApiModelProperty(value = "0为平台管理员关闭, 1为租户管理员关闭, 2为用户关闭, 3为支付超时关闭, 4为系统风控关闭  5为拼团失败关闭")
    private Integer closedBy;

    @ApiModelProperty(value = "用户自动关闭理由")
    private String closedReason;

    @ApiModelProperty(value = "是否自动发货")
    private Integer isAutoDelivered;

    @ApiModelProperty(value = "是否用户可见")
    private Boolean isVisible;

    @ApiModelProperty(value = "null为普通订单， 预留给扩展其它订单使用，如：付费视频订单，付费音频订单")
    private String type;

    @ApiModelProperty(value = "0为实物   1为虚拟")
    private Integer productType;

    @ApiModelProperty(value = "0为未确认, 1进行中订单, 2已关闭订单,  3未发货申请取消中  4申请售后中  5售后完成 9已完成订单   7待处理   8已返售")
    private Integer status;

    @ApiModelProperty(value = "0为未申请发票  1为发票申请中   2发票已寄出")
    private Integer invoiceStatus;

    @ApiModelProperty(value = "0为未支付, 1为付款确认中, 2为已付款, 3不需要支付")
    private Integer payStatus;

    @ApiModelProperty(value = "0为待发货,  1为备货中,  2部分发货,  3已发货  4已核销 5不需要发货")
    private Integer deliverStatus;

    @ApiModelProperty(value = "0为无售后 1为售后中 2为售后完成 3售后关闭")
    private Integer aftersaleStatus;

    @ApiModelProperty(value = "使用优惠券的id")
    private Integer couponId;

    @ApiModelProperty(value = "options")
    private String options;

    @ApiModelProperty(value = "用户删除时间")
    private Date userDeletedAt;

    @ApiModelProperty(value = "商家标记时间")
    private Date markedAt;

    private Date deletedAt;

    private Date createdAt;

    private Date updatedAt;

    @ApiModelProperty(value = "支付类型: 1为在线支付邮费  2为到付")
    private Integer carriageType;

    @ApiModelProperty(value = "设备标记id")
    private Integer deviceId;

    @ApiModelProperty(value = "其它设备信息")
    private String deviceInfo;

    @ApiModelProperty(value = "已退款金额")
    private Integer refundedMoney;

    @ApiModelProperty(value = "积分抵扣的数量(不包含积分固定定价部分)")
    private Integer scoreUsed;

    @ApiModelProperty(value = "活动id，盲盒id、一番赏id、抽奖id、扭蛋机id")
    private Integer activityId;

    @ApiModelProperty(value = "对应活动类型, seckill groupon 等")
    private String activityType;

    @ApiModelProperty(value = "活动uuid")
    private String activityUuid;

    @ApiModelProperty(value = "活动id，盲盒id、一番赏id、抽奖id、扭蛋机id")
    private Integer nodeId;

    @ApiModelProperty(value = "对应实体类型,  product box yifanshang lottery egg_lottery")
    private String nodeType;

    @ApiModelProperty(value = "活动uuid")
    private String nodeUuid;

    @ApiModelProperty(value = "0为未处理 1为无需发放佣金 2为已创建佣金记录待完成 3为已发放佣金  4为已取消关闭佣金 ")
    private Integer brokerageStatus;

    @ApiModelProperty(value = "供应商名称")
    private String supplier;

    @ApiModelProperty(value = "房间id")
    private Integer roomId;

    @ApiModelProperty(value = "1为已扣库存， 0为未扣库存")
    private Integer isAddSales;

    @ApiModelProperty(value = "快手是否已确认结算")
    private Boolean isKuaishouOrderCompleted;

    @ApiModelProperty(value = "连开人民币优惠")
    private Integer multiBuyMoneyDiscount;

    @ApiModelProperty(value = "连开积分优惠")
    private Integer multiBuyScoreDiscount;

    @ApiModelProperty(value = "兑换记录的id")
    private Integer exchangeRecordId;

    @ApiModelProperty(value = "兑换人民币抵扣")
    private Integer exchangeMoneyDiscount;

    @ApiModelProperty(value = "兑换积分抵扣")
    private Integer exchangeScoreDiscount;

    @ApiModelProperty(value = "使用免费次数兑换")
    private Boolean isUseFreeTicket;


}
